package com.weilai.service.user;


import org.springframework.stereotype.Component;

/**
 * 登录密码方法
 * 
 * @author ruoyi
 */
@Component
public class PasswordService {

//    @Autowired
//    private CacheManager cacheManager;
//
//    private Cache<String, AtomicInteger> loginRecordCache;
//
//    @Value(value = "${SysUser.password.maxRetryCount}")
//    private String maxRetryCount;
//
//    @PostConstruct
//    public void init()
//    {
//        loginRecordCache = cacheManager.getCache("loginRecordCache");
//    }
//
//    public void validate(SysUser SysUser, String password)
//    {
//        String loginName = SysUser.getLoginName();
//
//        AtomicInteger retryCount = loginRecordCache.get(loginName);
//
//        if (retryCount == null)
//        {
//            retryCount = new AtomicInteger(0);
//            loginRecordCache.put(loginName, retryCount);
//        }
//        if (retryCount.incrementAndGet() > Integer.valueOf(maxRetryCount).intValue())
//        {
//            SystemLogUtils.log(loginName, Constants.LOGIN_FAIL, MessageUtils.message("SysUser.password.retry.limit.exceed", maxRetryCount));
//            throw new UserPasswordRetryLimitExceedException(Integer.valueOf(maxRetryCount).intValue());
//        }
//
//        if (!matches(SysUser, password))
//        {
//            SystemLogUtils.log(loginName, Constants.LOGIN_FAIL, MessageUtils.message("SysUser.password.retry.limit.count", retryCount, password));
//            loginRecordCache.put(loginName, retryCount);
//            throw new UserPasswordNotMatchException();
//        }
//        else
//        {
//            clearLoginRecordCache(loginName);
//        }
//    }
//
//    public boolean matches(SysUser SysUser, String newPassword)
//    {
//        return SysUser.getPassword().equals(encryptPassword(SysUser.getLoginName(), newPassword, SysUser.getSalt()));
//    }
//
//    public void clearLoginRecordCache(String username)
//    {
//        loginRecordCache.remove(username);
//    }
//
//    public String encryptPassword(String username, String password, String salt)
//    {
//        return new Md5Hash(username + password + salt).toHex().toString();
//    }
//
//    public static void main(String[] args)
//    {
//        //System.out.println(new PasswordService().encryptPassword("admin", "admin123", "111111"));
//        //System.out.println(new PasswordService().encryptPassword("ry", "admin123", "222222"));
//    }
}
